package com.qf.map;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

/**
 * 演示HashMap的基本用法
 */
public class HashMapDemo {
    public static void main(String[] args) {

        // 注意： 泛型有两个，前面的Key的类型，后面的是Value的类型
        HashMap<String, String> map = new HashMap<>();

        map.put("like","喜欢；像");
        map.put("hi","你好");
        map.put("world","世界");
        System.out.println(map);

        String s = map.get("world");
        System.out.println(s);

        System.out.println(map.get("word"));

        map.put("hi","嗨；你好");
        System.out.println(map.get("hi"));

        map.put("circle","圆形");
        Set<String> keySet = map.keySet();
        System.out.println(keySet);

        // 检查字典中是否包含 hi 这个英文单词
        System.out.println(map.keySet().contains("hi"));

        // 获取所有的value的集合
        Collection<String> values = map.values();
        System.out.println(values);
        System.out.println("=================");
        // 获取map中的所有 entry 对象（entry是 key和value组成的对象）
        Set<Map.Entry<String, String>> entries = map.entrySet();
        for (Map.Entry<String, String> entry : entries) {
//            System.out.println(entry);
            System.out.print(entry.getKey());
            System.out.print("-->");
            System.out.print(entry.getValue());
            System.out.println();
        }
        System.out.println("===================");
        // 检查map中是否存在指定的key
        System.out.println(map.containsKey("hi1"));
        // 检查map中是否保包含指定的value
        System.out.println(map.containsValue("世界1"));
        System.out.println("===================");
        String remove = map.remove("hi1");
        System.out.println(remove);
        System.out.println(map);
        System.out.println("===================");

        System.out.println(map.size());

    }
}
